package cn.yunyichina.provider.guide.service.impl;

import java.util.List;

import javax.annotation.Resource;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;

import cn.yunyichina.provider.framework.exception.CallException;
import cn.yunyichina.provider.guide.dao.InstanceNodeDao;
import cn.yunyichina.provider.guide.dao.InstanceRelationDao;
import cn.yunyichina.provider.guide.dao.TemplateDao;
import cn.yunyichina.provider.guide.dao.TemplateNodeDao;
import cn.yunyichina.provider.guide.dao.TemplateRelationDao;
import cn.yunyichina.provider.guide.entity.Template;
import cn.yunyichina.provider.guide.entity.TemplateNode;
import cn.yunyichina.provider.guide.entity.TemplateRelation;
import cn.yunyichina.provider.iface.entity.ErrorCodeDefine;

/**
 * 导医模板
 * @author adriftor
 *
 */
@Service("GuidetemplateServiceImpl")
public class GuideTemplateServiceImpl  {
	
	private static final Logger logger = LoggerFactory.getLogger(GuideTemplateServiceImpl.class);
	@Resource
	private TemplateDao templateDao;
	
	@Resource
	private TemplateNodeDao templateNodeDao;
	
	@Resource
	private TemplateRelationDao templateRelationDao;
	

	
	public Template getFullTemplate(String templateId) {
		Template template = templateDao.selectById(templateId);
		TemplateNode node = new TemplateNode();
		node.setTemplateId(templateId);
		List<TemplateNode> listNode = templateNodeDao.select(node);
		template.setListNode(listNode);
		
		TemplateRelation relation = new TemplateRelation();
		relation.setTemplateId(templateId);
		List<TemplateRelation> listRelation = templateRelationDao.select(relation);
		template.setListRelation(listRelation);
		
		return template;
		
		
	}
	
	/**
	 * 新增一个导医流程模板
	 * <br>yyt.guide.guidetemplate.start
	 * @param strJson
	 * @param orgCode
	 * @param appCode
	 * @param templateId
	 * @param registerRecordId
	 * @param userId
	 */
	public void addGuideTemplate(String strJson,String orgCode,String appCode) {
		try {

			
		}
		catch (Exception ex) {
			logger.error(ErrorCodeDefine.GUIDE_COMMON,"新增一个导医流程模板异常",ex);
			throw new CallException(ErrorCodeDefine.GUIDE_COMMON,"新增一个导医流程模板异常",ex);
		}
	}
	/**
	 * 更新一个导医流程模板
	 * <br>yyt.guide.guidetemplate.start
	 * @param strJson
	 * @param orgCode
	 * @param appCode
	 * @param templateId
	 * @param registerRecordId
	 * @param userId
	 */
	public void updateGuideTemplate(String strJson,String orgCode,String appCode) {
		try {

			
		}
		catch (Exception ex) {
			logger.error(ErrorCodeDefine.GUIDE_COMMON,"更新一个导医流程模板异常",ex);
			throw new CallException(ErrorCodeDefine.GUIDE_COMMON,"更新一个导医流程模板异常",ex);
		}
	}
	
	/**
	 * 启用/停用一个导医流程模板
	 * <br>yyt.guide.guidetemplate.start
	 * @param strJson
	 * @param orgCode
	 * @param appCode
	 * @param templateId
	 * @param registerRecordId
	 * @param userId
	 */
	public void validGuideTemplate(String strJson,String templateId,String validFlag) {
		try {

			
		}
		catch (Exception ex) {
			logger.error(ErrorCodeDefine.GUIDE_COMMON,"启用/停用一个导医流程模板异常",ex);
			throw new CallException(ErrorCodeDefine.GUIDE_COMMON,"启用/停用一个导医流程模板异常",ex);
		}
	}
	/**
	 * 查询模板
	 * @param strJson
	 * @param orgCode
	 * @param appCode
	 */
	public void listGuideTemplate(String strJson,String orgCode,String appCode) {
		try {

			
		}
		catch (Exception ex) {
			logger.error(ErrorCodeDefine.GUIDE_COMMON,"查询模板异常",ex);
			throw new CallException(ErrorCodeDefine.GUIDE_COMMON,"查询模板异常",ex);
			
		}
	}
	/**
	 * 获取模板
	 * @param strJson
	 * @param orgCode
	 * @param appCode
	 * @param templateId
	 */
	public void getGuideTemplate(String strJson,String orgCode,String appCode,String templateId) {
		try {

			
		}
		catch (Exception ex) {
			logger.error(ErrorCodeDefine.GUIDE_COMMON,"获取模板异常",ex);
			throw new CallException(ErrorCodeDefine.GUIDE_COMMON,"获取模板异常",ex);
		}
	}
	/**
	 * 模板复制
	 * @param strJson
	 * @param orgCode
	 * @param appCode
	 * @param templateId
	 * @param toOrgCode
	 * @param toDeptCode
	 */
	public void copyGuideTemplate(String strJson,String orgCode,String appCode,String templateId,String toOrgCode,String toDeptCode) {
		try {

			
		}
		catch (Exception ex) {
			logger.error(ErrorCodeDefine.GUIDE_COMMON,"模板复制异常",ex);
			throw new CallException(ErrorCodeDefine.GUIDE_COMMON,"模板复制异常",ex);
		}
	}
	

}
